//
//  ThirdLogin.swift
//  SwiftTest
//
//  Created by appleTwo on 2019/4/18.
//  Copyright © 2019 QiKai. All rights reserved.
//

import UIKit

class ThirdLogin: NSObject {
    enum type {
        case weixin
        case qq
    }
    override init() {
        super.init()
    }
    static let shareMange = ThirdLogin()
    let appidWX = ""//（申请回来的key 或者叫id 也是工程里面的URLScheme）
    func thirdLoginTologin(type:type) {
        if type == .weixin {
            if self.WXisAllow(){
                self.requestWeixinlogin()
            }
        }
        if type == .qq {
            
        }
    }
}
extension ThirdLogin{
    //微信
    
    //是否允许
    func WXisAllow() -> Bool{
        if WXApi.isWXAppSupport() == false {
            SVProgressHUD.show(withStatus: "您当前手机微信版本过低")
            SVProgressHUD.dismiss(withDelay: 0.8)
            return false
        }
        if  WXApi.isWXAppInstalled() == false {
            SVProgressHUD.show(withStatus: "您当前手机没有安装微信")
            SVProgressHUD.dismiss(withDelay: 0.8)
            return false
        }
        return true
    }
    ///向微信注册 （如果微信其他功能注册过不需要注册）
    func resgisteWeixin() {
        WXApi.registerApp(appidWX)
    }
    //调起微信登录事件
    func requestWeixinlogin() {
        let req = SendAuthReq()
        req.scope = ""
        req.state = ""
        WXApi.send(req)
    }
    func onReq(req: BaseReq!) {
        //onReq是微信终端向第三方程序发起请求，要求第三方程序响应。第三方程序响应完后必须调用sendRsp返回。在调用sendRsp返回时，会切回到微信终端程序界面。
        print(req.type)
    }
    
    func onResp(resp: BaseResp!) {
        //如果第三方程序向微信发送了sendReq的请求，那么onResp会被回调。sendReq请求调用后，会切到微信终端程序界面。
        /*
         code  用户换取access_token的code，仅在ErrCode为0时有效
         state  第三方程序发送时用来标识其请求的唯一性的标志，由第三方程序调用sendReq时传入，由微信终端回传，state字符串长度不能超过1K
         lang  微信客户端当前语言
         country 微信用户当前国家信息
         */
        if resp.isKind(of: SendAuthResp.self) {
            print("ErrCode : \(resp.errCode)") // 0
            print("EodeStr : \(resp.errStr)") // nil
            let respGet = SendAuthResp()
            switch resp.errCode
            {
            case 0:
                print("授权成功")
                //拿到微信返回的code
               //respGet.code
                self.WXloginSuceeByCode(code: respGet.code!)
            default:
                print("登录失败")
            }
        }
    }
    
}
extension ThirdLogin{
    //微信登录回调 根据code 获取access_token openid
    func WXloginSuceeByCode(code:String){
        
    }
    //获取微信用户信息
    func WXgetUserLoginInfo(token:String,openid:String) {
        
    }
    
}
